Skip to content

Restore top-level GPU test lane; drop vestigial AlgConvergence_II group#3813

Merged
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:restore-root-gpu-lane
Jul 3, 2026
Merged

Restore top-level GPU test lane; drop vestigial AlgConvergence_II group#3813
ChrisRackauckas merged 1 commit into
SciML:masterfrom
ChrisRackauckas-Claude:restore-root-gpu-lane

Conversation

@ChrisRackauckas-Claude

Copy link
Copy Markdown
Contributor

What

Restores a top-level GPU test lane to the root package and drops a vestigial test group.

The gap (answers "the top-level GPU run is missing")

During the pre-centralization sublibrary split (2026-03-18, commits 2fe7abbe2 + f803bdf53), root GPU tests were moved into the sublibraries and the group: GPU block was deleted from the root CI.yml. The centralized-matrix migration (#3730) then reproduced the then-current no-GPU matrix. Result: test/gpu/ at the root is orphaned dead code — nothing includes it, test/runtests.jl has no GPU group, and its files are stale duplicates. So e.g. the GPU DAE tests added in #3073 (which edit test/gpu/) never run.

Root-level GPU tests are integration tests — the test/gpu environment pulls the full OrdinaryDiffEq stack plus the BDF/NonlinearSolve/RKIP/Rosenbrock sublibraries via [sources] — so a top-level lane is meaningful (distinct from the per-sublibrary GPU groups).

Changes

  • test/test_groups.toml: add [GPU] (versions = ["1"], runner = ["self-hosted","Linux","X64","gpu"], timeout = 60), matching the sublibrary GPU groups.
  • test/runtests.jl: add activate_gpu_env() + gpu_group() (develop the root package, activate test/gpu, include every test/gpu/*.jl under an isolated @safetestset) and wire "GPU" => gpu_group. Files are globbed so the set stays in sync as GPU tests are added/removed (so Fix GPU compat of sparse dae solvers #3073's dae_tests.jl runs automatically once merged).
  • Drop [AlgConvergence_II] from test/test_groups.toml: introduced by the matrix migration (CI: convert root test matrix to grouped-tests.yml (test/test_groups.toml) #3730) but it never had a folder, thunk, or any tests — it only spawned no-op CI jobs.

Validation

  • Local (CPU): runtests.jl parses; test_groups.toml emits the GPU cell and no longer emits AlgConvergence_II; the glob + @safetestset include mechanism runs isolated testsets.
  • GPU tests execute only on the self-hosted gpu runner — I cannot run CUDA locally, so the actual GPU test results will come from CI on this PR. Some root test/gpu/ files are stale (diverged from their sublibrary copies); turning the lane on will surface any that need updating (that's coordinated with Fix GPU compat of sparse dae solvers #3073, which refreshes the DAE GPU tests).

Draft — ignore until reviewed by @ChrisRackauckas.

The root package's GPU test lane was dropped during the pre-centralization
sublibrary split (2026-03-18) and never re-added to the grouped-tests matrix, so
`test/gpu/` became orphaned dead code -- nothing includes it and `test/runtests.jl`
has no GPU group. Root-level GPU tests are integration tests (the `test/gpu`
environment pulls the full OrdinaryDiffEq stack + the BDF/NonlinearSolve/RKIP/
Rosenbrock sublibraries via [sources]), distinct from the per-sublibrary GPU
tests, so restore a top-level lane:

- test/test_groups.toml: add a `[GPU]` group (`versions = ["1"]`,
  `runner = ["self-hosted","Linux","X64","gpu"]`, `timeout = 60`), matching the
  sublibrary GPU groups.
- test/runtests.jl: add `activate_gpu_env()` + `gpu_group()` (develop the root
  package, activate test/gpu, include every `test/gpu/*.jl` under an isolated
  `@safetestset`) and wire `"GPU" => gpu_group` into the run_tests groups. Files
  are globbed so the set stays in sync as GPU tests are added/removed there.

Also drop `[AlgConvergence_II]` from test/test_groups.toml: it was introduced by
the matrix migration (SciML#3730) but never had a folder, a thunk, or any tests, so it
only spawned no-op CI jobs.

Note: GPU tests execute only on the self-hosted `gpu` runner; they cannot be run
in a CPU CI/dev environment. Validated locally: runtests.jl parses, the matrix
emits the GPU cell, and the group-include mechanism runs isolated @safetestsets.

Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
@ChrisRackauckas ChrisRackauckas marked this pull request as ready for review July 3, 2026 18:24
@ChrisRackauckas ChrisRackauckas merged commit 72706ab into SciML:master Jul 3, 2026
117 of 122 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants